Day 24- R語言 ggplot2資料視覺化 Part 1- 基礎繪圖文法及qplot介紹
(前言:內個,我只是個剛接觸程式設計的小萌新,如果內文內容、程式碼、統計資料圖寫或畫的不對,還請各位大大指教 Orz)
從今天開始要使用ggplot來做繪圖啦(灑小花花),要記得先安裝ggplot2套件喔 ˊˇˋ
ggplot2真的好有名,功能也超級強大,每個網站都好推薦的說,所以今天開始就使用ggplot來繪圖。
首先我們先來暸解ggplot2的基礎原理及文法。ggplot2的繪圖原理是把一份資料轉換並套用到美學(aesthetics)、幾何(geometry)、統計 (statistics)、座標 (coordinates)、繪圖面 (facets)、**及主題(themes)**等使用者自訂的條件,因此,文法大致上分五個部分:aesthetics, geometry, facets, stats及scales 。aesthetics主要包含指定圖表顏色、線的粗細、大小等。Geometry主要指定圖表類型,例如點圖、線圖、長條圖…等,如果要在一張圖表中安插多張小圖表的話可以使用facets,如果要做資料的統計轉換時可以使用stats,scales則是修改點線的顏色、xy軸資料範圍等其他參數。
至於今天要學的是基礎的繪圖函數qplot()
,qplot的功能大致上與R函數內建的plot()
函數相同,就只是運用不同的套件執行這樣 ,不過我們也可以先用qplot
做練習,適應一下ggplot的引數及程式寫法
qplot的作圖函數很簡單,大致上就是qplot(x軸資料, y軸資料, data = 使用資料, 其他引數)
註:如果使用錢幣記號來直接指定資料來源的話,data可以不用打
首先先畫點圖,這次一樣用的也是cp空氣品質監測資料,用到的是PM2.5及 PM10資料。
先做單變量資料的繪圖,如果是單變量的話qplot會自動將圖表類型轉成直方圖,程式碼如下:
qplot(cp$PM2.5, xlab = "PM2.5", ylab = "Count")
輸出結果如下:
如果想要為資料上色的話,可以使用fill = 條件
引數
再來做雙變量繪圖,雙變量繪圖就是點圖了,程式碼如下:
qplot(cp$PM10, cp$PM2.5, color = cp$TEMP, xlab = "PM10", ylab = "PM2.5")
可以看到我用PM10當作x軸指標,PM2.5為y軸指標,color
使用溫度來當作點的顏色依據,xlab
和ylab
和基礎作圖函數則沒什麼兩樣,是用來指定坐標名稱的,
繪圖結果如下:
另外如果要指定點的形狀的話,可以用shapes = 條件
調整,如果想要為資料上色的話,可以使用fill = 條件
引數
接下來要用facets 這個特性做圖,facets可以讓使用者根據不同的條件讓ggplot自動為圖形做分類,語法為:facets = 直向分類~橫向分類
。以PM10, PM2.5對月份的關係為例,程式碼如下:
qplot(cp$PM10, cp$PM2.5, data = cp, facets = .~cp$month, xlab = "PM10", ylab = "PM2.5")
繪圖結果如下:
如果把facets的.~cp$month
顛倒過來的話,會產生這樣圖表:
當然,這張點圖也可以畫成直條圖的樣子,程式碼如下:
qplot(cp$PM10, data = cp, facets = cp$month~., xlab = "PM10", ylab = "PM2.5", binwidth = 2)
繪圖結果如下:
(註:binwidth負責的是直方圖的分組間隔)
最後要學的是geometry
的特性,這使用這個特性可以畫出漸近線及針對圖表形式作改變,例如點、線、盒狀圖等圖表。畫出漸近線的程式碼如下:
qplot(cp$PM10, cp$PM2.5, data = cp, xlab = "PM10", ylab = "PM2.5", geom = c("point", "smooth"), xlim = c(0, 450), ylim = c(0,410))
這邊我有設定xlim
及ylim
來調整圖表的比例(不然會有一小片沒有資料),另外geom
引數要有point
及smooth
引數,才會同時顯示點及漸近線
明天繼續學ggplot函數吧
參考資料: